Developments in the field of digital signal processors have led to an increased interest in parallel data processing. In the parallel processing of a data processing program the necessity arises, for example, for storing local variables of procedures. Particularly in recursive procedures, holding each variable on an absolute memory address may not be possible, as a second retrieval of the procedure would overwrite the first variable values deposited there. The procedures are a specified series of actions of operations which have to be executed in same manner in order to obtain a similar result under similar circumstances. The specified series of actions of operations are also referred to as elements of the procedure. For this reason, a special memory area, which is designated as a stack and works as LIFO (last in first out) memory, is usually created for storing local variables.
In the LIFO memory, the last element stored is a first element to be retrieved. As an example in markup languages (i.e., XML, HTML), during processing, an element is first opened and then it is closed. Any number of elements may be opened within the elements. To open and/or to close an element, the name of the element is required. The name of the element if stored in a stack, for opening the element may be retrieved when an element close indication is received. In such instances, there is no need to store the complete name along with XML for closing elements. Typically the names of the elements are of variable width. Generally a memory stack having a width more than or equal to the width of the longest element name is selected for storing the elements. This scheme of storing element names results in wastage of the memory space in the stack as most of the element names do not occupy the entire width.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.